Introducción

Los datos pertenecen a reseñas de vinos. Los datos provienen de WineEnthusiast y fueron tomados por Zack Thoutt. Se tomaron durante la semana del 15 de junio de 2017.

https://www.kaggle.com/datasets/zynicide/wine-reviews https://www.winemag.com/?s=&drink_type=wine https://github.com/zackthoutt/wine-deep-learning/blob/master/README.md

Exploración de los datos

# Código para cargar o leer los datos

vinos<- read_csv("datos/vinos.csv")

Tiene las siguientes variables:

names(vinos) #La función names() por su parte, nos devuelve los nombres de las variables
##  [1] "pais"          "nombre"        "puntos"        "precio"       
##  [5] "provincia"     "region_1"      "region_2"      "variedad"     
##  [9] "vina"          "titulo_resena"
cantidad_obs_vinos <-count(vinos) #La funcion count cuenta el nro de filas

Se pudieron encontrar en la tabla vinos 129971 observaciones

cantidad_variables_vinos <-length(vinos) # La funcion lengrh devuelve el tamaño de un elemento

Posee 10 Variables

Algunas cosas para mostrar:

valor_medio_precio <- summarise(vinos, valor_medio = mean(precio,na.rm = TRUE))

El valor medio de la variable precio es 35.3633891

desvio_std_precio <- summarise(vinos, desvio_std = sd(precio,na.rm = TRUE))

El desvío estándar de la variable precio es 41.0222177

valor_max_precio <- summarise(vinos, Valor_max = max(precio,na.rm = TRUE))

El valor máximo de la variable precio es 3300

valor_min_precio <- summarise(vinos, Valor_min = min(precio,na.rm = TRUE))

El valor minimo de la variable precio es 4

valor_medio_puntos <- summarise(vinos, valor_medio = mean(puntos,na.rm = TRUE))

El valor medio de la variable puntos es 88.4471382

desv_std_puntos <- summarise(vinos, desvio_std = sd(puntos,na.rm = TRUE))

El desvios estandar de la variable puntos es 3.0397302

valor_max_puntos <-summarise(vinos,Valor_max = max(puntos,na.rm = TRUE))
valor_min_puntos <-summarise(vinos,Valor_min = min(puntos,na.rm = TRUE))

El valor minimo de la variable precio es 100

El valor minimo de la variable precio es 80

Cantidad de observaciones por la variable PAIS

vinos|>
group_by(pais)|>
  summarise(n=n())|>
 datatable()

Cantidad de observaciones por la variable NOMBRE

vinos|>
group_by(nombre)|>
  summarise(n=n())|>
  datatable()

Cantidad de observaciones por la variable PUNTOS

vinos|>
group_by(puntos)|>
  summarise(n=n())|>
  datatable()

Cantidad de observaciones por la variable PRECIO

vinos|>
group_by(precio)|>
summarise(n=n())|>
datatable()

Cantidad de observaciones por la variable PROVINCIA

Se puede concluir que la provincia con mayor produccion de vinos es California

vinos|>
group_by(provincia)|>
summarise(n=n()) |>
arrange(desc(n))|>
datatable()

Cantidad de observaciones por la variable REGION_1

Se puede observar que la variable REGION_1 presenta una gran cantidad de valores NA

vinos|>
group_by(region_1)|>
summarise(n=n()) |>
arrange(desc(n))|>
 datatable()

Cantidad de observaciones por la variable REGION_2

Se puede observar que la variable REGION_2 presenta una gran cantidad de valores NA

vinos|>
group_by(region_2)|>
summarise(n=n()) |>
arrange(desc(n))|>
 datatable()  

Cantidad de observaciones por la variable VARIEDAD

La variedad de uvas mas usada para la fabricacion de vinos es la Pinot Noir

vinos|>
group_by(variedad)|>
  summarise(n=n()) |>
  arrange(desc(n))|>
   datatable()

Cantidad de observaciones por la variable ViÑA

vinos|>
group_by(vina)|>
  summarise(n=n())|>
  datatable()

Cantidad de observaciones por la variable titulo_resena

vinos|>
group_by(titulo_resena)|>
  summarise(n=n())|>
  datatable()

Definición valores faltantes en R,se entiende valores que debieron haberse registrado, pero no lo fueron. R almacena los valores faltantes como NA, lo que significa Not Available

Primero preguntamos ¿Hay valores faltantes?

any_na(vinos) #La función any_na() por su parte, nos devuelve TRUE si hay valores faltantes
## [1] TRUE
valores_faltantes <- sum(is.na(vinos))

Los cantidad de valores faltantes (NA) de la tabla vinos es 147295

Los valores faltantes para cada variable es la siguiente

apply(X = is.na(vinos), MARGIN = 2, FUN = sum)
##          pais        nombre        puntos        precio     provincia 
##            63         37465             0          8996            63 
##      region_1      region_2      variedad          vina titulo_resena 
##         21247         79460             1             0             0

¿Hay diferencias? Si existen diferencias. Donde más datos faltantes hay es en la variable ‘nombre’ y ‘region_2’. Los datos faltantes son datos que deberían estar pero no fueron registrados.

Cantidad de observaciones por la variable PUNTOS, ordenado de forma decreciente

 vinos|>
  group_by(puntos)|>
  summarise(n=n()) |>
  arrange(desc(puntos)) |>
 ggplot(mapping = aes(x= puntos, y = n))+
   geom_col()

Cantidad de observaciones por PAIS, ordenado en forma decreciente para saber que país tiene más observaciones.

Aqui ya podemos ver que unos de los mayores productores de vino es EEUU.

vinos|>
group_by(pais)|>
  summarise(n=n())|>
  arrange(desc(n))|>
  datatable()

Hipótesis

“Existe relación entre el precio del vino y la puntuación?”

Si bien no es particularmente esclarecedor, muestra que hay cierta concentración de vinos de menor precio en el rango de 85 a 92,5 puntos.

Podemos deducir mediante el grafico que se produce una concentracion de vinos de menor precio en el rango comprendido entre los 85 y 90 puntos aproximadamente, se limito la muestra para vinos por debajo de los $200.

# Limitamos el precio a $200
vinos2 <- vinos |>
  group_by(nombre)|>
  summarise(valor_medio_precio=mean(precio,na.rm=TRUE),valor_medio_puntos=mean(puntos,na.rm=TRUE) )|>
  filter(valor_medio_precio < 200 & !is.na(valor_medio_precio))

# Datos
vinos2 |>
  ggplot(aes(valor_medio_precio, valor_medio_puntos)) +
  geom_point(position="jitter") +
  geom_hex(bins = 100) +
  labs(title="Puntuacion del Vino vs. Precio",
       subtitle="(Precio inferior a $200)",
       x="Precio ($)", y="Puntos (0-100)")

Se desea saber cómo se comparan los países en términos de puntos para cada vino. ¿Hay alguna diferencia en la calidad del vino entre cada país? En particular, se va comparar los vinos de EEUU con los vinos italianos y franceses. Se usara un diagrama de caja que también incluye la media.

¿Existe relación entre el país de donde proviene el vino y la puntuación?.

Como ya sabemos los mayores productores de vino son Francia, Italia y Estados Unidos. A continuación se organizará los datos por país y se generará un gráfico de barras que muestra la cantidad de vinos elaborado en cada país, se limitará la muestra a los 20 países que mayor producción tienen.

 vinos_pais <- group_by(vinos,pais) |>
summarise(n= n()) |>
filter(n>30)|>
arrange(desc(n))
head(vinos_pais,20)|>
datatable()
ggplot(vinos_pais,aes(reorder(pais, n), n, fill= pais)) +
  geom_bar(stat="identity") +
  geom_text(aes(label=n), hjust=-.1, vjust=.25) +
  xlab("PAIS") +
  ylab("vinos Elaborados") +
  ylim(0, 60000) +
  guides(fill="none")+
  coord_flip()

Tomamos estos tres paises para comparar en términos de puntos.

EEUU_Francia_Italia <- filter(vinos, pais  %in%  c("Estados Unidos","Francia","Italia"))

Se usará un diagrama de caja que también incluye la media.

ggplot(EEUU_Francia_Italia, mapping= aes(pais,puntos, fill=pais))+
  geom_boxplot()+
  stat_summary(fun.y="mean", geom="point", shape=21, fill= "red") +
  scale_x_discrete(labels=c("Estados Unidos","Francia", "Italia")) +
  guides(fill=FALSE) +
  theme(axis.title.x=element_blank())

Es interesante notar que tanto Italia como EEUU tienen medias más altas que las medianas, lo que significa que tienen unos pocos vinos selectos excepcionales, mientras que Francia tiene casi exactamente la misma mediana y media, las cuales son más altas que Italia y EEUU, lo que significa que Francia posee vinos de mejor calidad (puntuación).